///@file StressVector.h
///@brief Declaration of the class representing the vector representation of a stress tensor
///@author Arnaud Duval
///@version 0.0
///@date 2011/03/16

#ifndef STRESSVECTOR_H
#define STRESSVECTOR_H

#include "Vector.h"
#include "Matrix.h"

///@class StressVector
///@brief Class defining the vector representation of a stress tensor
///@brief Order of components for 3rd dimension : 11 22 33 12 13 23
///@brief Order of components for 2nd dimension : 11 22 12
class StressVector : public Vector
{
    private:

    public:
        ///@brief Default constructor
        StressVector() : Vector() {}
        ///@brief Constructor with given size
        StressVector(int size) : Vector((unsigned int)size) {}
        ///@brief Overload of = operator for Vector
        StressVector& operator= (const Vector &);
        ///@brief Overload of + operator
        StressVector operator+ (const StressVector &);
        ///@brief Overload of - operator
        StressVector operator- (const StressVector &);
        ///@brief Overload of * operator
        Matrix operator* (const StressVector &);
        ///@brief Compute Von Mises equivalent stress
        double VMEquiv();
        
};


#endif